Updating availability of an instant messaging contact

ABSTRACT

A contact is determined to be unavailable if a predetermined period of time has elapsed since an instant message was sent to the contact and an expected notification for the instant message was not received during that predetermined period of time by the device that sent the instant message. If the expected notification is a delivered notification, then the contact is deemed unreachable. If the expected notification is a read notification and a delivered notification for the instant message has been received by the device that sent the instant message, then the contact is deemed busy.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 12/235562, filedSep. 22, 2008, which is a continuation of U.S. application Ser. No.11/176263, filed Jul. 8, 2005, now U.S. Pat. No. 7,444,135, all theabove applications hereby incorporated herein by reference.

BACKGROUND

Instant messages are short text messages with no subject and noattachments sent directly from terminal to terminal within an instantmessaging (IM) community. The messages are generally displayed to theuser as part of a conversation. A member of an instant messaging (IM)community has a unique identifier (“contact name”) in that community andcan be added to the contact list of another member of the communityusing that identifier. For example, SMS is available only within thecommunity of mobile telephone users, and the unique identifier is thetelephone number.

Some IM systems include presence information about the availability ofone's contacts for communication. Presence information is particularlyimportant when a contact uses a wireless-enabled mobile device, becausethe contact may become unavailable with short notice due to batteryloss, poor network coverage, and the like. Moreover, forwireless-enabled mobile devices that are always connected, the contactmay appear to be available even if he or she is not.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which like reference numeralsindicate corresponding, analogous or similar elements, and in which:

FIG. 1 is a simplified illustration of an exemplary communication systemused for instant messaging, according to an embodiment;

FIG. 2 is a flowchart of an exemplary method implemented by an instantmessaging client on a device, according to some embodiments;

FIGS. 3A-3D, 4A-4D, 5A-5C and 6A-6C are illustrations of an exemplarydevice and its display, according to some embodiments; and

FIG. 7 is a block diagram illustration of an exemplary device, accordingto some embodiments.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of embodiments.However it will be understood by those of ordinary skill in the art thatthe embodiments may be practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave not been described in detail so as not to obscure the embodiments.

FIG. 1 is a simplified illustration of an exemplary communication system100 used for instant messaging (IM), according to an embodiment. System100 includes devices 102, 104 and 106, respectively identified byidentifiers 112, 114 and 116 in the instant messaging community. Anon-exhaustive list of examples for devices 102, 104 and 106 includesworkstations, notebook computers, laptop computers, desktop personalcomputers, personal digital assistants (PDAs), hand-held computers,cellular telephones, smart cellphones, electronic mail (Email) clients,programmable consumer electronics, network PCs, and the like.

Devices 102 and 104 communicate to each other and to other devices inthe instant messaging community via a network 120, and device 106communicates to other devices in the instant messaging community via anetwork 130. A non-exhaustive list of examples for networks 120 and 130includes

a) wired networks such as the Internet, intranets, Ethernet networks,token rings, Universal Serial Bus (USB), wired networks according to theIEEE 1394-1995, IEEE 1394a-2000, and IEEE 1394b standards (commonlyknown as “FireWire”), or any combination thereof;

b) cellular networks such as Direct Sequence—Code Division MultipleAccess (DS-CDMA) cellular radiotelephone communication, Global Systemfor Mobile Communications (GSM) cellular radiotelephone, North AmericanDigital Cellular (NADC) cellular radiotelephone, Time Division MultipleAccess (TDMA), Extended-TDMA (E-TDMA) cellular radiotelephone, widebandCDMA (WCDMA), General Packet Radio Service (GPRS), Enhanced Data for GSMEvolution (EDGE), 3G and 4G communication, and the like;

c) wireless local area networks such as 802.11, Bluetooth®, Zigbee™,ultra wideband (UWB) and the like; and

d) optical communication networks.

Networks 120 and 130 may include any combination of additionalcommunication devices (not shown) such as gateways, routers, switches,and the like.

An IM client 140 is installed on each of devices 102, 104 and 106. IMclient 140 may be implemented in software, hardware, firmware or anycombination thereof. When the user of device 102 sends an instantmessage to the user of device 104, the instant message is handled by IMclient 140 on device 102, communicated to network 120, communicated to arelay computer or computers 150, and passed back to network 120 forcommunication to device 104. When the user of device 106 sends aninstant message to the user of device 104, the instant message ishandled by IM client 140 on device 106, communicated to network 130,communicated to relay computer(s) 150, and passed to network 120 forcommunication to device 104.

Relay computer(s) 150 identifies the contact through its uniqueidentifier in the IM 15 community and enables the instant message to beaddressed to the appropriate device. If the instant message cannot bedelivered to the contact's device, relay computer(s) 150 may store theinstant message and attempt redelivery for a specified period of time,for example, 24 hours or 48 hours.

In some IM systems, an IM server 160 is incorporated into or coupled torelay computer(s) 150. In other IM systems, the IM functionality isenabled by IM clients 140 and no 20 specific IM server is required.

FIG. 2 is a flowchart of an exemplary method implemented by an instantmessaging client on a device, according to some embodiments. The methodof FIG. 2 will be explained with reference to FIGS. 3A-3D, 4A-4D, 5A-5Cand 6A-6C, which are illustrations of an exemplary device and itsdisplay, according to some embodiments. In the exemplary device shown 25in FIGS. 3A-3D, 4A-4D, 5A-5C and 6A-6C, the user of the device has acontact name “Test”, and the contact to whom the user of the device issending instant messages has a contact name “User A”.

At 202, the IM client of a device sends an instant message to a contact.For example, in FIG. 3A, User A is listed in Test's contact list asavailable. In FIG. 3B, the checkmark next to 30 the instant message withthe text “Test” indicates that that instant message was successfullycommunicated to the network with which the device communicates.

At 204, the IM client starts a timer. The timer counts a predeterminedperiod of time, which may be configurable. If before this predeterminedperiod of time has elapsed an expected notification is received by thedevice, which is checked at 206, then at 208, the contact is reachableand/or available. If the predetermined period of time has elapsed, aschecked at 210, and the 5 expected notification has not yet beenreceived by the device, then at 212 the IM client determines that thecontact is unavailable.

For example, the expected notification may be a delivered notificationfor the instant message. It may be inferred from the lack of a timelydelivered notification that the contact is unreachable. For example, ifthe contact has a wireless-enabled mobile device, low battery and/or 10poor network coverage may cause the instant message to not arrive at thecontact's device.

At 214, the IM client may display to the user of the device that thecontact is unavailable. Since the device belonging to Test has notreceived a timely delivered notification for the instant message, FIG.3C shows User A as unavailable, and FIG. 3D shows more information aboutthe contact's state, namely that User A is unreachable.

In another example, the expected notification may be a read notificationfor the instant message. If the device receives a delivered notificationfor the instant message but does not receive a read notification for theinstant message, it may be inferred from the lack of a timely readnotification that the contact is reachable but busy.

FIG. 4A shows that User A is available. FIG. 4B shows that Test hassuccessfully sent an instant message, destined for User A with the text“Test”, to the network. Since the device belonging to Test has receiveda delivered notification for the instant message but has not received atimely read notification for the instant message, FIG. 4C shows User Aas unavailable, and FIG. 4D shows more information about the contact'sstate, namely that User A is busy.

If the contact is unavailable, then at 216, the user of the device maywish to set an alert to be notified when the contact becomes availableor reachable. For example, FIG. 5A shows an exemplary user-interfacethat enables the user of the device to set the alert for the unavailablecontact User A. FIG. 5B shows that the alert has been set. FIG. 5C showsthat after the alert has been set, User A is still shown as unavailable.

If the expected notification is received after the predetermined periodof time has elapsed, as at 218, then at 220 the IM client of the devicedetermines that the contact is reachable (for example, in the case of abelated delivered notification) or available (for example, in the caseof a belated read notification). At 222, the IM client may display tothe user of the device the updated availability status of the contact.

If an alert has been set at 216, then at 224, one or more user interfaceelements of the device are used to notify the user of the device thatthe contact is now reachable or available, as appropriate. Anon-exhaustive list of examples for the one or more user interfaceelements includes a vibrator, a sound source, a light source, and anyother suitable user interface element. As shown in FIG. 6A, once thedevice has determined that User A is available, the user of the deviceis notified by way of a dialog box displayed on the display of thedevice. FIG. 6B shows that User A is available, and FIG. 6C shows moreinformation about the contact's state, namely that User A is active.

An example for the predetermined period of time may be about 2 minutes.Other values for the predetermined period of time are also contemplated.If the predetermined period of time is too short, then the status ofcontacts will be changed too often. The predetermined period of time maybe set taking into account network and natural delays in receiving theexpected notification. If the predetermined period of time is too long,then the status of contacts may be changed too slowly. For example, acontact who appears to be available but is in fact unavailable willcontinue to appear available for too long.

FIG. 7 is a block diagram illustration of an exemplary device, forexample, device 102, according to some embodiments. Device 102 includesa processor 702 and a memory 704 coupled to processor 702. Memory 704stores the unique identifier 112 of device 102 in the IM community, andalso stores IM client 140 or the software portion thereof.

Device 102 includes a display 724 and a keyboard 726, both coupled toprocessor 702, and may include additional user interface components thatare not shown in FIG. 7. Keyboard 726 may be embedded in full or in partwithin display 724, i.e. display 724 may be a “touch screen”. A timer722 may be controlled by processor 702, and may be implemented bysoftware, by hardware or by any combination thereof.

Device 102 includes a communication interface 728, coupled to processor702, that is able to communicate with network 120. If network 120 is acellular network or any other type of wireless network, communicationinterface 728 may include a radio 730 and an antenna 732. Otherwise, ifnetwork 120 is a wired network, communication interface 728 may includeother interfacing elements suitable to interact with network 120.

A non-exhaustive list of examples for processor 702 includes amicroprocessor, a microcontroller, a central processing unit (CPU), adigital signal processor (DSP), a reduced instruction set computer(RISC), a complex instruction set computer (CISC) and the like.Furthermore, processor 702 may comprise more than one processing unit,may be part of an application specific integrated circuit (ASIC) or maybe a part of an application specific standard product (ASSP).

Memory 704 may be fixed in or removable from device 102. Memory 704 maybe coupled to processor 702 or partly embedded in processor 702. Anon-exhaustive list of examples for memory 704 includes any combinationof the following:

a) semiconductor devices such as registers, latches, read only memory(ROM), mask ROM, electrically erasable programmable read only memorydevices (EEPROM), flash memory devices, non-volatile random accessmemory devices (NVRAM), synchronous dynamic random access memory (SDRAM)devices, RAMBUS dynamic random access memory (RDRAM) devices, doubledata rate (DDR) memory devices, static random access memory (SRAM),universal serial bus (USB) removable memory, and the like;

b) optical devices, such as compact disk read only memory (CD ROM), andthe like; and

c) magnetic devices, such as a hard disk, a floppy disk, a magnetictape, and the like.

A non-exhaustive list of examples for antenna 732 includes a dipoleantenna, a monopole antenna, a multilayer ceramic antenna, a planarinverted-F antenna, a loop antenna, a shot antenna, a dual antenna, anomnidirectional antenna and any other suitable antenna.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A method comprising: sending, by a communication device, an instantmessage to a contact; and determining, by the communication device, thatthe contact is unreachable if the communication device has not receiveda delivered notification for the instant message within a predeterminedperiod of time since the communication device sent the instant message.2. The method of claim 1 wherein said determining includes displaying anindication that the contact is unreachable.
 3. The method of claim 1further comprising, after said determining: determining, by thecommunication device, based on receipt of the delivered notificationafter the predetermined period of time, that the contact is reachable.4. The method of claim 3 further comprising: in response to determiningafter the predetermined period of time that the contact is available,the communication device displaying an indication that the contact isreachable.
 5. The method of claim 4 wherein the indication is displayedby the communication device.
 6. The method of claim 4 wherein theindication is provided by at least one of a vibrator, a sound source anda light source of the communication device.
 7. The method of claim 4further comprising: the communication device displaying a query whetherto send another message to the contact.
 8. The method of claim 1 furthercomprising after said determining: displaying, by the communicationdevice, a user interface with which an alert can be set to be notifiedwhen the contact becomes reachable.
 9. The method of claim 1 furthercomprising, after said determining: determining, by the communicationdevice, that the contact is reachable but busy based on thecommunication device having received the delivered notification but nota read notification within the predetermined period of time since thecommunication device sent the instant message.
 10. The method of claim 9further comprising: in response to said determining that the contact isreachable but busy, the communication device providing an indicationthat the contact is reachable but busy.
 11. The method of claim 1further comprising: changing the predetermined period of time based onnetwork delays.
 12. The method of claim 1 further comprising, beforesaid determining: displaying an indication that the instant message wassuccessfully communicated to a network with which the communicationdevice communicates.
 13. The method of claim 1 wherein the communicationdevice is a wireless mobile communication device.
 14. The method ofclaim 1 wherein the contact receives the instant message using awireless mobile communication device.
 15. A method comprising: sending,by a communication device, an instant message to a contact; receiving,by the communication device, a delivered notification for said instantmessage; and displaying, by the communication device, in response toreceiving the delivered notification, both an indication that thecontact is reachable and a query whether to send another message to thecontact.
 16. The method of claim 15 further comprising: receiving, bythe communication device, a read notification for said instant message;and displaying, by the communication device, in response to receivingthe read notification, a query whether to send another message to thecontact.
 17. The method of claim 15 further comprising, before saiddisplaying: displaying, by the communication device, an indication thatthe contact is unreachable.
 18. The method of claim 15 furthercomprising, before said displaying: displaying an indication that theinstant message was successfully communicated to a network with whichthe communication device communicates.
 19. The method of claim 15wherein the communication device is a wireless mobile communicationdevice.
 20. The method of claim 15 wherein the contact receives theinstant message using a wireless mobile communication device.